import config from '../config.js';
/**
 * 检测升级 使用说明
 * 上传包：
 * 1. 先从数据库取出所有该平台（从上下文读取平台信息，默认 Andriod）的所有线上发行更新
 * 2. 再从所有线上发行更新中取出版本最大的一版。如果可以，尽量先检测wgt的线上发行版更新
 * 3. 使用上步取出的版本包的版本号 和传参 appVersion、wgtVersion 来检测是否有更新，必须同时大于这两项，否则返回暂无更新
 * 4. 如果库中 wgt包 版本大于传参 appVersion，但是不满足 min_uni_version < appVersion，则不会使用wgt更新，会接着判断库中 app包version 是否大于 appVersion
 */
export default function checkVersion() {
	return new Promise((resolve, reject) => {
		// #ifdef APP-PLUS
		uni.getSystemInfo({
			success: (res) => {
				let platform = res.platform;
				// 获取本机版本号
				plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
					// 通过云函数检查更新 并 获取更新信息
					uniCloud.callFunction({
						name: "checkVersion",
						data: {
							appid: plus.runtime.appid,
							platform,
							appVersion: plus.runtime.version,
							wgtVersion: wgtinfo.version
						}
					}).then(res => {
						res = res.result;
						res.platform = platform;
						// 大于 0 则说明有更新
						if (res.code > 0) {
							// 验证通过
							resolve(res);
						}
						reject(res);
					}).catch(err => {
						reject(err);
					});
				});
			}
		});
		// #endif
	})
}